﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TangoFamilyAndGuide.Site
{
    public partial class AlojamientoCrear : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Entidades.Sesion sesion;
            if (!IsPostBack)
            {
                if (Funciones.SessionTimeOut(Session))
                {
                    Response.Redirect("~/SessionTimeout.aspx");
                }
                else
                {
                    sesion = (Entidades.Sesion)Session["Sesion"];
                    TypePlaceDropDownList.DataSource = Entidades.TypesPlace.TypePlace.ListaMasSinInformar();
                    TypeRoomDropDownList.DataSource = Entidades.TypesRoom.TypeRoom.ListaMasSinInformar();
                    TypeBathroomDropDownList.DataSource = Entidades.TypesBathroom.TypeBathroom.ListaMasSinInformar();
                    AlojamientoOfferDropDownList.DataSource = Entidades.TypesSex.TypeSex.ListaMasSinInformar();
                    MonedaDropDownList.DataSource = Entidades.CodigosMoneda.CodigoMoneda.ListaReducidaMasSinInformar();
                    ServicesListBox.DataSource = Entidades.Services.Service.Lista();
                    DescripcionTextBox.Focus();
                    DataBind();
                }
            }
        }
        protected void AceptarButton_Click(object sender, EventArgs e)
        {
            if (Funciones.SessionTimeOut(Session))
            {
                Response.Redirect("~/SessionTimeout.aspx");
            }
            else
            {
                Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"];
                Entidades.Alojamiento Alojamiento = new Entidades.Alojamiento();
                try
                {
                    if (PricePerDayTextBox.Text == "")
                    {
                        MensajeLabel.Text = "The Price Per Day is empty. ";
                        return;
                    }
                    if (PricePerMonthTextBox.Text == "")
                    {
                        MensajeLabel.Text = "The Price Per Month is empty. ";
                        return;
                    }

                    Alojamiento.Usuario.Id = sesion.Usuario.Id;
                    Alojamiento.Descripcion = DescripcionTextBox.Text.Trim();
                    Alojamiento.Direccion = Domicilio.Direccion;
                    Alojamiento.Pais = Domicilio.Pais;
                    Alojamiento.Provincia = Domicilio.Provincia;
                    Alojamiento.Localidad = Domicilio.Localidad;
                    Alojamiento.CodPost = Domicilio.CodPost;
                    Alojamiento.Contacto.Nombre = Contacto.Nombre;
                    Alojamiento.Contacto.Email = Contacto.Email;
                    Alojamiento.Contacto.Telefono = Contacto.Telefono;
                    Alojamiento.Comentarios = ComentariosTextBox.Text;
                    Alojamiento.GoogleMap = GoogleMapTextBox.Text;

                    Alojamiento.Neighborhood = NeighborhoodTextBox.Text;
                    //Alojamiento.ApproximateAddress ApproximateAddress.Text;
                    Alojamiento.SizeSgm = SizeSgmTextBox.Text;
                    Alojamiento.TypePlace = TypePlaceDropDownList.SelectedValue;
                    Alojamiento.TypeRoom = TypeRoomDropDownList.SelectedValue;
                    Alojamiento.TypeBathroom = TypeBathroomDropDownList.SelectedValue;
                    Alojamiento.AlojamientoOffer = AlojamientoOfferDropDownList.SelectedValue;
                    Alojamiento.SkypeAddress = SkypeAddressMapTextBox.Text;
                    Alojamiento.Moneda = MonedaDropDownList.SelectedValue;
                    Alojamiento.PricePerDay = Convert.ToDecimal(PricePerDayTextBox.Text);
                    Alojamiento.PricePerMonth = Convert.ToDecimal(PricePerMonthTextBox.Text);
                    //Alojamiento.PriceComment = PriceComment.Text;
                    string services = "";
                    for (int i = 0; i < ServicesListBox.Items.Count; i++)
                    {
                        if (ServicesListBox.Items[i].Selected)
                        {
                            services += ServicesListBox.Items[i].Value + "-";
                        }
                    }
                    Alojamiento.Servicios = services;
                    Alojamiento.Ranking = 0;

                    if (RN.Alojamiento.ComprobarDireccionAlojamiento(Alojamiento.Direccion, sesion))
                    {
                        MensajeLabel.Text = "There is already a Milonguero Alojamiento Network with a same address, modify the data. ";
                    }
                    else
                    {
                        int IdAlojamiento = 0;
                        RN.Alojamiento.Crear(out IdAlojamiento, Alojamiento, sesion);

                        DescripcionTextBox.Enabled = false;
                        Domicilio.Enabled = false;
                        Contacto.Enabled = false;
                        ComentariosTextBox.Enabled = false;
                        GoogleMapTextBox.Enabled = false;

                        NeighborhoodTextBox.Enabled = false;
                        SizeSgmTextBox.Enabled = false;
                        TypePlaceDropDownList.Enabled = false;
                        TypeRoomDropDownList.Enabled = false;
                        TypeBathroomDropDownList.Enabled = false;
                        AlojamientoOfferDropDownList.Enabled = false;
                        SkypeAddressMapTextBox.Enabled = false;
                        MonedaDropDownList.Enabled = false;
                        PricePerDayTextBox.Enabled = false;
                        PricePerMonthTextBox.Enabled = false;
                        AceptarButton.Enabled = false;
                        SalirButton.Text = "Salir";

                        Funciones.PersonalizarControlesMaster(Master, true, sesion);
                        MensajeLabel.Text = "There was successfully. ";
                        if (IdAlojamiento != 0)
                        {
                            MensajeLabel.Text = MensajeLabel.Text + "Id: " + IdAlojamiento;
                        }
                        Alojamiento.Id = IdAlojamiento;
                        Session["Alojamiento"] = Alojamiento;
                        Session["AlojamientoCrearMensaje"] = MensajeLabel.Text;
                        Response.Redirect("~/AlojamientoImagenes.aspx");
                    }
                }
                catch (Exception ex)
                {
                    MensajeLabel.Text = EX.Funciones.Detalle(ex);
                    return;
                }
            }
        }
    }
}